From 76b29e97a1c6e2b9ba180e66aa6016f9e2667630 Mon Sep 17 00:00:00 2001 From: Chris Swindle Date: Sat, 21 Oct 2017 20:10:25 +0100 Subject: [PATCH] Adding some extra tests. --- tests/alt-registry.rs | 84 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 83 insertions(+), 1 deletion(-) mode change 100644 => 100755 tests/alt-registry.rs diff --git a/tests/alt-registry.rs b/tests/alt-registry.rs old mode 100644 new mode 100755 index 9d701ba6b..fed6ae0c7 --- a/tests/alt-registry.rs +++ b/tests/alt-registry.rs @@ -118,7 +118,6 @@ fn registry_incompatible_with_git() { .with_stderr_contains(" dependency (bar) specification is ambiguous. Only one of `git` or `registry` is allowed.")); } - #[test] fn cannot_publish_with_registry_dependency() { let p = project("foo") @@ -143,3 +142,86 @@ fn cannot_publish_with_registry_dependency() { .arg("--index").arg(registry::alt_registry().to_string()), execs().with_status(101)); } + +#[test] +fn alt_registry_and_crates_io_deps() { + + let p = project("foo") + .file("Cargo.toml", r#" + cargo-features = ["alternative-registries"] + + [project] + name = "foo" + version = "0.0.1" + authors = [] + + [dependencies] + crates_io_dep = "0.0.1" + + [dependencies.alt_reg_dep] + version = "0.1.0" + registry = "alternative" + "#) + .file("src/main.rs", "fn main() {}"); + p.build(); + + Package::new("crates_io_dep", "0.0.1").publish(); + Package::new("alt_reg_dep", "0.1.0").alternative(true).publish(); + + assert_that(p.cargo("build").masquerade_as_nightly_cargo(), + execs().with_status(0) + .with_stderr_contains(format!("\ +[UPDATING] registry `{}`", registry::alt_registry())) + .with_stderr_contains(&format!("\ +[UPDATING] registry `{}`", registry::registry())) + .with_stderr_contains("\ +[DOWNLOADING] crates_io_dep v0.0.1 (registry `file://[..]`)") + .with_stderr_contains("\ +[DOWNLOADING] alt_reg_dep v0.1.0 (registry `file://[..]`)") + .with_stderr_contains("\ +[COMPILING] alt_reg_dep v0.1.0 (registry `file://[..]`)") + .with_stderr_contains("\ +[COMPILING] crates_io_dep v0.0.1") + .with_stderr_contains(&format!("\ +[COMPILING] foo v0.0.1 ({})", p.url())) + .with_stderr_contains("\ +[FINISHED] dev [unoptimized + debuginfo] target(s) in [..] secs")) + +} + +#[test] +fn alt_registry_dep_with_crates_io_dep() { + + let p = project("foo") + .file("Cargo.toml", r#" + cargo-features = ["alternative-registries"] + + [project] + name = "foo" + version = "0.0.1" + authors = [] + + [dependencies.alt_reg_dep] + version = "0.1.1" + registry = "alternative" + "#) + .file("src/main.rs", "fn main() {}"); + p.build(); + + Package::new("alt_reg_dep", "0.1.1").alternative(true).dep("crates_io_dep", "0.0.2").publish(); + + assert_that(p.cargo("build").masquerade_as_nightly_cargo(), + execs().with_status(0).with_stderr(&format!("\ +[UPDATING] registry `{alt_reg}` +[UPDATING] registry `{crates_io_reg}` +[DOWNLOADING] alt_reg_dep v0.1.1 (registry `file://[..]`) +[DOWNLOADING] crates_io_dep v0.0.2 (registry `file://[..]`) +[COMPILING] alt_reg_dep v0.1.1 (registry `file://[..]`) +[COMPILING] crates_io_dep v0.0.2 +[COMPILING] foo v0.0.1 ({dir}) +[FINISHED] dev [unoptimized + debuginfo] target(s) in [..] secs +", + dir = p.url(), + crates_io_reg = registry::registry(), + alt_reg = registry::alt_registry()))); +} -- 2.30.2